import pandas
import os
import numpy as np

"""
    FILE：首行是标题，下面是正文
    x[index 或者 布尔数组] 总之为x的过滤
"""


def create_csv(file_path):
    if os.path.exists(file_path):
        return ''
    with open(file_path, 'w', encoding='UTF-8') as file:
        for _ in range(4):
            file.write('姓名,年龄,性别\n')
            file.write('张军涛,26,男\n')
            file.write('张三,21,女\n')


def create_json(file_path, content):
    if os.path.exists(file_path):
        return ''
    with open(file_path, 'w', encoding='UTF-8') as file:
        file.write(content)


if __name__ == '__main__':
    file_path = '../data/pandas.txt'
    create_csv(file_path)

    # 读csv 、 excel
    file = pandas.read_csv(file_path)
    print(file['姓名'])

    # 数据的json序列化保存文件、json文件读取
    json_file = '../data/json.txt'
    create_json(json_file, file.to_json(path_or_buf='../data/json.txt_1'))
    print("read json 数据：", pandas.read_json(json_file))

    # df.loc[行标签,列标签]
    # df.loc['a':'b']#选取ab两行数据
    # df.loc[:,'one']#选取one列的数据
    file = pandas.read_csv(file_path)
    print(file.loc[2])

    # 读取前n行
    print("---------------# 读取前n行-------------------")
    print(file.loc[:2])
    print(file.head())
    print(file.head(6))

    # 读取后N行
    print("-----------------# 读取后N行-----------------")
    print(file.tail())
    print(file.loc[-5:])

    # 列的计算
    print('----------------读取计算数据-----------------')
    print('年龄小的数字', file["年龄"].min())
    print('年龄之和', file["年龄"].sum())
    print('平均年龄', file["年龄"].mean())
    print('平均最大', file["年龄"].max())
    print('返回数组中不为0的元素：', file["年龄"].notnull)

    # 列元素的加减乘除f
    print('----------------列、元素的加减乘除-----------------')
    print('每人年龄+2', file["年龄"] + 2)
    print('每人年龄*2', file["年龄"] * 2)
    print(np.arange(8).reshape((8, 1)))
    print('每人年龄 + 同shape 数组', file["年龄"] + np.arange(8))
    print('第一个人的年龄+12', file["年龄"][0] + 12)

    print("排序后的数据索引:", file["年龄"].argsort(order="年龄"))
    print("按照年龄正排序:", file.sort_values(by="年龄"))
    print("按照年龄倒排序:", file.sort_values(by="年龄", ascending=False))

    print('----------------iteritems-----------------')
    for item in file.iteritems():
        print(item)
